/*******************************************************************************************
 *      @name   processB.c
 *      @brief  这是在linux系统下使用有名管道实现进程间的通信，目的是学习有名管道的应用
 *      @date   2025/02/08
 *      @author cecelmx@126.com 
 *      @note
 *          1.有名管道可以在外部进程间使用
 *          2.有名管道需要使用mkfifo函数进行创建，访问有名管道还需要利用open函数打开
 * 
 *      @version  xx.xx.xx   主版本号.次版本号.修正版本号
 * 
 *      CopyRight (c)   2024-2025   Your Name     All Right Reserved
 * 
 * ****************************************************************************************/
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>

#define FIFO_PATH "/tmp/fifo"

int main()
{

    //2.打开有名管道
    int fifo_fd = open(FIFO_PATH,O_RDWR);
    if(fifo_fd == -1)
    {
        fprintf(stderr,"open [%s] error,%s\n",FIFO_PATH,strerror(errno));
        exit(-1);
    }

    //3.从有名管道中读取数据
    char buf[128] = {0};
    for(;;)
    {
        read(fifo_fd,buf,sizeof(buf));
        printf("%s",buf);
        sleep(1);
    }


    return 0;
}